This specification relates to feature detection.
One problem in computer vision is determining the two dimensional or three dimensional relationships between two images of the same object taken using two dimensional cameras. One way to solve this problem is to leverage algorithms such as Scale-Invariant Feature Transform (SIFT) or Speeded Up Robust Features (SURF) to identify feature points in 2D images, and then match the features between the images. Each feature point is associated with a descriptor that describes the feature point using a vector. The contents of the vector can vary based on the algorithm used to identify the feature point. For example, in the SIFT algorithm, the vector can include histograms of eight bins computed from the magnitude and orientation of a sample in a region of 16 pixels by 16 pixels around the feature point. A separate histogram can be calculated for each 4 pixel by 4 pixel region. The magnitude can be further weighted by Gaussian function. The resulting bin values can be normalized. The value for each bin is stored separately in the vector. Vectors created using the SIFT algorithm contain 128 elements. A typical image may include 200 or more feature points.
For images taken outdoors at different times, the vectors associated with otherwise corresponding feature points may not match due to seasonal variations, lighting changes, and other changes to that may occur over time.